<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 选择排序：
        //    找到最小的值   放到第一个位置
        //    找到第二小的值  放到第二个位置



        // 思路：找到最小的值的位置   与第一个位置上的值进行交换



        var arr = [2, 1, 4, 0, 8];

        // // 第一轮  找最小的值的位置
        // var min = 0;    // 假设第一个位置上的值最小   min代表的是下标
        // for (var i = 1; i < arr.length; i++) {
        //     if (arr[min] > arr[i]) {
        //         min = i;
        //     }
        // }
        // console.log(min);

        // // 第一个位置上的数与min对应的数进行交换
        // var temp = arr[0];
        // arr[0] = arr[min];
        // arr[min] = temp;

        // console.log(arr);    // 0 1 4 2 8


        // // 第二轮  找第二小的位置
        // var min = 1;
        // for (var i = 2; i < arr.length; i++) {
        //     if (arr[min] > arr[i]) {
        //         min = i;
        //     }
        // }

        // // min刚好就是1  不需要交换


        // // 第三轮
        // var min = 2;
        // for (var i = 3; i < arr.length; i++) {
        //     if (arr[min] > arr[i]) {
        //         min = i;
        //     }
        // }
        // var temp = arr[2];
        // arr[2] = arr[min];
        // arr[min] = temp;

        // // 第四轮
        // var min = 3;
        // for (var i = 4; i < arr.length; i++) {
        //     if (arr[min] > arr[i]) {
        //         min = i;
        //     }
        // }

        // // min刚好就是3  不需要交换




        function mySort(arr) {

            for (var j = 0; j < arr.length - 1; j++) {    // 比较的轮数
                var min = j;   // 假设第j个位置上的值是最小的
                for (var i = j + 1; i < arr.length; i++) {   // 与后面所有的值进行比较
                    if (arr[min] > arr[i]) {    // 如果假设的这个值比后面大   说明后面更小
                        min = i;    // min记录更小的值的下标
                    }
                }
                // 
                if (min !== j) {
                    var temp = arr[j];
                    arr[j] = arr[min];
                    arr[min] = temp;
                }

            }
            return arr    // 这里的返回值跟传进来的数组是共享地址的，一般不需要这么做
        }


        var arr = [3, 1, 6, 4, 2];
        mySort(arr);






    </script>

</body>

</html>